/**
 * Company : SIANGKLOM.
 * Created By : Chatree Siangklom
 * Created On : Oct 4, 2013  1:07:08 PM 
 * e-Mail : dr_chatree@hotmail.com
 * Mobile Phone : (+66) 087-921-5115
 * Package Name : com.tis.database.services.promis
 * File Name : ICustomerServices.java
 * TODO
 */
package com.tis.database.services.promis;

import java.util.List;

import org.hibernate.HibernateException;

import com.tis.database.entitys.promis.Customer;
import com.tis.database.entitys.staging.SdCustomerOutb1;

/**
 * @author Chatree Siangklom of Administrator
 * Date =Oct 4, 2013 : 1:07:08 PM 
 * CreateBy=Chatree Siangklom
 * TODO
 */
public interface ICustomerServices {

	/**
	 * 
	 * Date =Oct 4, 2013 : 1:09:12 PM 
	 * CreateBy=Chatree Siangklom
	 * TODO
	 * @param e
	 * @throws HibernateException
	 */
	void save(Customer e) throws HibernateException;
	
	/**
	 * 
	 * Date =Oct 4, 2013 : 1:09:10 PM 
	 * CreateBy=Chatree Siangklom
	 * TODO
	 * @param e
	 * @throws HibernateException
	 */
	void save(List<Customer> e) throws HibernateException;
	
	/**
	 * 
	 * Date =Oct 4, 2013 : 1:09:06 PM 
	 * CreateBy=Chatree Siangklom
	 * TODO
	 * @param e
	 * @throws HibernateException
	 */
	void saveOrUpdate(Customer e) throws HibernateException;
	
	/**
	 * 
	 * Date =Oct 4, 2013 : 1:09:03 PM 
	 * CreateBy=Chatree Siangklom
	 * TODO
	 * @param e
	 * @throws HibernateException
	 */
	void saveOrUpdate(List<Customer> e) throws HibernateException;
	

	/**
	 * 
	 * Date =Oct 4, 2013 : 1:08:59 PM 
	 * CreateBy=Chatree Siangklom
	 * TODO
	 * @param customerCode
	 * @param idNo
	 * @param taxId
	 * @param createdOnStart
	 * @param createdOnEnd
	 * @param maxResult
	 * @return
	 * @throws HibernateException
	 * @throws Exception
	 */
	List<Customer> Search(
							String customerCode,
							String idNo,
							String taxId,			
							String createdOnStart,
							String createdOnEnd,
							int maxResult) throws HibernateException, Exception;
	
	List<Customer> FindByIs(String status, String syncIsstaging, String syncIssync, int maxResult) throws Exception;
	
	
	Customer findById(String id);
	
}
